package com.itfenghuang.day03_作业;

public class A01_作业 {
//       1、多态是什么，多态的前提条件是什么?
//               1) 同一个对象在不同时刻体现的不同状态
//               2) 继承   方法的重写   父类引向子类的对象
//       3、多态的好处和弊端分别是什么？
//       11、根据需求，完成如下代码（按照标准格式写），并在测试类中进行测试。  这是三个不同的需求，也就是说是三个问题。
//              需求一：
//                  已知猫类和狗类：
//                  属性:毛的颜色,腿的个数
//                  行为:吃饭
//                  猫特有行为:抓老鼠catchMouse
//                  狗特有行为:看家lookHome
//             需求二：
//                 已知接口Play中有一个方法playGame()，再测试类中如何调用该方法？
//
//             需求三：
//                  已知动物类（姓名，年龄，吃饭，睡觉），它有两个子类，分别是猫类和狗类。
//                  不同的是猫吃鱼，狗吃肉。
//                  经过马戏团的培训后，部分猫会跳高，部分狗也会跳高。
//             请写代码实现。
//    11.1
    public static void main(String[] args) {
        Cat cat = new Cat(4,"红色");
        System.out.println(cat.color+cat.geshu);
        cat.eat();
        cat.catchMouse();
        Dog dog = new Dog(4,"白色");
        System.out.println(dog.color+dog.geshu);
        dog.eat();
        dog.lookHome();
    }
}
abstract class Animal{
    public int geshu;
    public String color;
    public abstract void eat();

    public Animal() {
    }

    public Animal(int geshu, String color) {
        this.geshu = geshu;
        this.color = color;
    }
}

class Cat extends Animal{
    public void catchMouse(){
        System.out.println("抓老鼠");
    }

    public Cat(int geshu, String color) {
        super(geshu, color);

    }

    @Override
    public void eat() {
        System.out.println("猫吃鱼");

    }
}
class Dog extends Animal{
    public void lookHome(){

    }

    public Dog(int geshu, String color) {
        super(geshu, color);
    }

    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }
}
//   11.2
interface Play{
    public abstract void playGame();
}
class Cs implements Play{

    @Override
    public void playGame() {

    }
}
//12.
interface Usb{
    public static void open(){
        System.out.println("开启功能");
    }
    public static void close(){
        System.out.println("关闭功能");
    }
}

class Notebook{
    public void startingUp(){
        System.out.println("开机功能");
    }
    public void shutdown(){
        System.out.println("关机功能");
    }
}
class Mouse implements Usb{
    public void mljusb(){
        System.out.println("连接鼠标");
    }
}
class Keyboard{
    public void kljusb(){
        System.out.println("连接键盘");
    }
}
























